/**
 * @file
 * @brief Provide sync-up service
 */

#ifndef _SYNCUP_SERVICE_H
#define _SYNCUP_SERVICE_H

#include <glib.h>
#include <glib-object.h>

#define SYNCUP_SERVICE_DBUS_PATH "/org/syncup/Service"
#define SYNCUP_SERVICE_DBUS_NAME "org.syncup.Service"
#define SYNCUP_SERVICE_DBUS_INTERFACE "org.syncup.Service"

G_BEGIN_DECLS

typedef struct _SyncupService SyncupService;
typedef struct _SyncupServiceClass SyncupServiceClass;

struct _SyncupService {
    GObject parent;
};

struct _SyncupServiceClass {
    GObjectClass parent;
};

extern GType syncup_service_get_type();

extern gboolean syncup_service_label_path(SyncupService *obj, gchar *path, GError **err);

G_END_DECLS

#define SYNCUP_TYPE_SERVICE (syncup_service_get_type())
#define SYNCUP_SERVICE(obj) \
    (G_TYPE_CHECK_INSTANCE_CAST((obj), SYNCUP_TYPE_SERVICE, SyncupService))
#define SYNCUP_SERVICE_CLASS(cls) \
    (G_TYPE_CHECK_CLASS_CAST((cls), SYNCUP_TYPE_SERVICE, SyncupServiceClass))
#define SYNCUP_IS_SERVICE(obj) \
    (G_TYPE_CHECK_INSTANCE_TYPE((obj), SYNCUP_TYPE_SERVICE))
#define SYNCUP_IS_SERVICE_CLASS(cls) \
    (G_TYPE_CHECK_CLASS_TYPE((cls), SYNCUP_TYPE_SERVICE))
#define SYNCUP_SERVICE_GET_CLASS(obj) \
    (G_TYPE_INSTANCE_GET_CLASS((obj), SYNCUP_TYPE_SERVICE, SyncupServiceClass))


#endif /* ! _SYNCUP_SERVICE_H */
